Skip to content

feat(robinhood): chain registry + RPC + launch tool support - #53

Merged
clawnchdev merged 4 commits into
mainfrom
feat/robinhood-chain
Sep 17, 2026
Merged

clawnchdev merged 4 commits into
mainfrom
feat/robinhood-chain

Conversation

@clawnchdev

Copy link
Copy Markdown
Owner

What

Adds Robinhood Chain (4663) to the three surfaces the plugin exposes: chain registry, RPC service, and the Clawnch launch tool. This is the Hermes-side companion to clawnchdev/clawnch#15 and clawnchdev/clawncher#3.

Changes

  • clawmes/lib/chains.py — 4663 + 46630 Chain entries. get_chain("robinhood") resolves.
  • clawmes/services/rpc.py — default endpoints for Robinhood mainnet and testnet. CLAWMES_RPC_4663 / CLAWMES_RPC_46630 overrides work unchanged.
  • clawmes/tools/clawnch_launch.py — schema accepts chain; forwarded to ClawnchService.prepare_deploy(..., chain=...), which routes into clawnch's LAUNCH_CHAIN-aware prepare/deploy endpoint. Chain is read off the API response (data.chainId) so emitted UI artifacts point at Blockscout on Robinhood.
  • clawmes/services/clawnch.pyprepare_deploy takes + forwards the chain query param. Docstring documents the Robinhood branch (Bags claimer array carries the 80/20 fee split; no burn gate).
  • clawmes/tools/clawnch_fees.py — docstring notes the Robinhood claim surface is per-token BagsFeeShare.claim().

Default behavior

Base remains the default. prepare_deploy only invokes the Robinhood branch when the caller supplies chain=robinhood; everything else flows through the existing Clanker custodial path.

Follow-ups

  • /burn and /launch burn flows don't apply on Robinhood; separate design note.
  • Airdrop / token-gate / /claim roster for Robinhood launches (BagsFeeShare readers per token).
  • The broader openclawnch assistant surface has equivalent plumbing pending.

Cross-links

  • clawnchdev/clawnch#15
  • clawnchdev/clawncher#3

- clawmes/lib/chains.py: 4663 (robinhood) + 46630 (robinhood-testnet)
  Chain entries. get_chain("robinhood") now resolves.
- clawmes/services/rpc.py: default endpoints for Robinhood (4663) and
  Robinhood Testnet (46630); CLAWMES_RPC_4663 / CLAWMES_RPC_46630 env
  overrides work unchanged.
- clawmes/tools/clawnch_launch.py: schema accepts `chain`; forwarded as
  `chain` query param via `prepare_deploy` when the caller selects the
  Robinhood path (Bags.fm) instead of the Base/Clanker custodial path.
  Chain is read off the API response (`data.chainId`) so emitted UI
  artifacts link to Blockscout rather than Basescan on Robinhood launches.
- clawmes/services/clawnch.py: `prepare_deploy` takes + forwards `chain`
  as a query param; docstring documents the Robinhood branch semantics
  (no burn gate, Bags claimer array carries the 80/20 fee split instead
  of Clanker's rewards array).
- clawmes/tools/clawnch_fees.py: docstring notes BagsFeeShare.claim() is
  the Robinhood claim surface (per-token), separate from Clanker's
  FeeLocker on Base.
- allowlist: unblock the plugin's own RHC hosts (rpc mainnet/testnet,
  blockscout x2, bags.fm) + startup self-check so a blocked shipped default
  is logged at start, not at first use
- clawnch service: RHC launch-router flows — rh_ticket / rh_confirm_launch /
  rh_deposit_launch, rh_claimable / rh_claim, rh_launches, RHC $CLAWNCH info
  and link helpers; tickets validated as chainId 4663; Base-only surfaces
  (deploy, prepare_deploy) raise unsupported_chain instead of silently
  hitting the wrong chain
- tools: clawnch_launch rh_ticket/rh_confirm/rh_deposit/rh_token and
  clawnch_fees rh_launches/rh_claimable/rh_claim; RHC-aware receipt cards
- tests: +112 (5028 pass, 8 skipped, 100% coverage; mypy back at the
  pristine 113-error baseline)
- version 0.20.0 -> 0.21.0 (pyproject + _version.py); first PyPI release
  since 0.18.2 (includes unpublished 0.19.0/0.20.0 changes)
- CHANGELOG: 0.21.0 section for the RHC launch surface, allowlist fix and
  no-silent-fallback changes; documents the new mcp>=1.0,<2 pin (the MCP
  2.x SDK renamed the tool API the server targets)
@clawnchdev
clawnchdev merged commit 2a006e5 into main Sep 17, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant